
/*
 * Copyright (c) 2018.
 * http://www.ulabcare.com
 */
package com.mt.roll.passport.feign;

import com.mt.roll.core.dto.LoginUser;
import com.mt.roll.core.dto.Permission;
import com.mt.roll.core.utils.SpringContextUtil;
import com.mt.roll.core.vo.LoginUserVo;
import com.mt.roll.core.vo.R;
import com.mt.roll.upms.params.ModifyPasswordParam;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.io.Serializable;
import java.util.List;

/**
 * @author jiff
 * @date 2018/11/1
 * @since 1.0
 */
public interface UpmsService {
    /**
     * 获取当前用户权限信息
     *
     * @return 权限信息
     */
    @PostMapping("/upms/getPermissions")
    List<Permission> getPermissions();

    /**
     * 获取当前登录用户信息
     *
     * @return 登录用户信息
     */
    @PostMapping("/upms/getLoginUser")
    R<LoginUserVo> getLoginUser();

    /**
     * 获取登录用户信息
     *
     * @param mobile 手机号码
     * @return 登录用户信息
     */
    @PostMapping("/upms/getLoginUserByMobile")
    R<LoginUser> getLoginUser(@RequestParam("mobile") String mobile);

    /**
     * 密码登录
     *
     * @param mobile   手机号码
     * @param password 密码
     * @return 登录结果
     */
    @PostMapping("/upms/login")
    R<LoginUser> login(@RequestParam("mobile") String mobile, @RequestParam("password") String password);

    /**
     * 修改密码
     *
     * @param param 修改密码参数
     * @return 处理结果
     */
    @PostMapping("/upms/modifyPassword")
    R<Serializable> modifyPassword(@RequestBody ModifyPasswordParam param);

    /**
     * 退出登录
     *
     * @return 处理结果
     */
    @PostMapping("/upms/logout")
    R<Serializable> logout();


    /**
     * 是否debug模式，开发模式允许使用缓存数据
     *
     * @return true、false
     */
    default boolean isDebug() {
        return SpringContextUtil.getActiveProfile().equals("dev");
    }
}
